<%@page language="java"
	import="java.sql.PreparedStatement,java.sql.ResultSet"
	pageEncoding="UTF-8"%>
<html>
<head>
<title>会员登录</title>
<style>
.main {
	width: 800px;
	height: 300px;
	border: 1px red solid;
	margin: 0px auto;
}

form {
	margin-top: 100px;
	margin-left: 240px;
	line-height: 35px;
}
</style>
</head>

<body>
	<%@include file="header.jsp"%>
	<%@include file="conn.jsp"%>
	<!-- 得到连接对象conn -->
	<div class="main">
		<form method="post">
			会员名称：<input type="text" name="username"><br />
			 会员密码：<input type="password" name="password"><br /> <input type="submit"value="登录" />
		</form>
	</div>
	<%@include file="footer.jsp"%>
</body>
</html>
<%
	String un = request.getParameter("username"); //JSP内置对象的方法获取表单元素
	String pw = request.getParameter("password");
	out.print(un);  //初次加载本页面时，由于服务器脚本优先执行，因此un为null值（无需按提交按钮）		
	if (null != un) { //单击提交按钮但并未输入的字段值为空串
		if (un.trim().length() > 0) { //必须输入表单元素username的值才进行数据库查询			
			String sql = "select * from user where username=? and password=?"; //参数式查询
			PreparedStatement pst = conn.prepareStatement(sql);
			pst.setString(1, un); //1---参数1
			pst.setString(2, pw); //2---参数2
			ResultSet rs = pst.executeQuery(); //预编译，带缓冲的选择查询				
			if (rs.next()) { //正确
				session.setAttribute("username", rs.getString(1)); //会话跟踪
				response.sendRedirect("index.jsp");
			} else {
				//下面使用js实现的跳转，在弹窗时不会清屏，而使用response.sendredirect()实现的是立即跳转
				//使用Ajax技术处理表单时也不会清屏（参见项目MemMana3之后台登录）
				out.print("<script>alert('用户名或密码错误!');location.href='index.jsp'</script>");
			}
		} else {
			out.print("<script>alert('用户名不能空!')</script>");//可继续输入登录信息
		}
	} //初次加载本页面时，不会执行任何数据库操作
%>
